package ewms.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import ewms.bo.EwmsWasteFlowInfoQueryBo;
import ewms.bo.EwmsReportQueryBo;
import ewms.domain.EwmsIncinerateHandle;
import ewms.vo.EwmsReportVo;
import ewms.common.core.mybatisplus.MybatisPlusRedisCache;
import ewms.common.core.page.BaseMapperPlus;
import org.apache.ibatis.annotations.CacheNamespace;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 报表Mapper接口
 *
 * @author zhaoxiaochun
 * @date 2022-02-17
 */
@CacheNamespace(implementation = MybatisPlusRedisCache.class, eviction = MybatisPlusRedisCache.class)
public interface EwmsReportMapper extends BaseMapperPlus<EwmsIncinerateHandle> {

	/**
	 * 查询危废流程信息列表
	 *
	 * @return
	 */
	Page<EwmsReportVo.WasteFlowInfoVo> selectWasteFlowInfoList(@Param("page") Page<EwmsReportVo.WasteFlowInfoVo> page, @Param("wasteFlowInfo") EwmsWasteFlowInfoQueryBo bo);

	/**
	 * 查询危废入库报表
	 *
	 * @return
	 */
	List<EwmsReportVo.EntryWarehouseReportVo> selectWasteEntryWarehouseList(EwmsReportQueryBo bo);

	/**
	 * 查询危废出库日记录报表
	 *
	 * @return
	 */
	List<EwmsReportVo.OutWarehouseReportVo> selectWasteOutWarehouseList(EwmsReportQueryBo bo);

	/**
	 * 查询危废出入库月报表
	 *
	 * @return
	 */
	List<EwmsReportVo.EntryAndOutWarehouseMonthReportVo> selectEntryAndOutWarehouseMothReport(EwmsReportQueryBo bo);

	/**
	 * 查询危废出入库月报表
	 *
	 * @return
	 */
	List<EwmsReportVo.WasteOutFactoryReportVo> selectOutFactoryReport(EwmsReportQueryBo bo);

	/**
	 * 查询危废焚化处置报表
	 *
	 * @return
	 */
	List<EwmsReportVo.WasteIncinerateHandleReportTempVo> selectIncinerateHandleReport(EwmsReportQueryBo bo);

	/**
	 * 查询系统年月列表
	 * @return
	 */
	List<String> selectYearMonthList();
}
